package com.lovo.project.dao;

import com.lovo.project.model.PermissionDO;
import com.lovo.project.model.ProductDO;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * @title 商品持久接口
 * @author: chenqiang
 * @date: 2020/11/4 9:43
 */
public interface ProductDAO {
    /**
     * 添加商品
     * @param productDO 商品对象
     * @return 影响行数
     */
    int addProduct(ProductDO productDO);

    /**
     * 修改商品的价格和专属规格
     * @param id 商品编号
     * @param productMoney 商品价格
     * @param productExclusiveSpecification 商品专属规格
     * @return 影响行数
     */
    int updateProduct(@Param("id") Integer id, @Param("money") Integer productMoney, @Param("exclusiveSpecification") String productExclusiveSpecification);

    /**
     * 根据id查询物品详细信息
     * @param id 商品编号
     * @return ProductDO 商品对象
     */
    ProductDO findById(Integer id);

    /**
     * 根据商品名模糊查询商品，如果商品名为null就会查询所有商品
     * @param id 店铺编号
     * @param productName 商品名
     * @return  List<ProductDO> 商品集合
     */
    List<ProductDO> findAllByProductName(@Param("id") Integer id,@Param("productName") String productName);

    /**
     * 通过修改状态进行商品的软删除
     * @param id 商品编号
     * @return 影响行数
     */
     int UpdateProductByIsDelete(@Param("id") Integer id);
}
